接下來兩天要介紹的內容就是物件導向非常核心的概念 -- 繼承(Inheritance)
繼承這個方法用在類別上簡單來說就是擴增程式碼,並保有原來之內容。
因為我們提到了「繼承」,所以可以舉出資料結構也是很有名的觀念 -- 二元樹(B tree)。
二元樹本身就是使用繼承的觀念,子節點繼承父親節點,物件導向正也使用到了類似這種概念。
正如我們前面提及,在Java中都是「單向繼承」
一個父類別可以被多個子類別繼承 ; 但一個子類別不能同時繼承2個或以上的父類別。
綜合以上 :
我們想要宣告一類別是繼承另外一個類別的方式,會用到關鍵字extends
class School{
/*...........
description
...........*/
}
class Student extends School{
/*......................
description in School
......................*/
/*............
description
............*/
}
子類別(Student)繼承父類別(School)中的內容,並新增新程式。
-> 類別繼承最後面的指令即是 extends + 父類別名稱。
這些情況都是不能被子類別直接繼承的,像private變數是需要封包內的get
、 set
概念來存取。
這邊我們介紹之前提到能被子類別繼承的前置修飾子protected
class School{
protected String name = "Chi";
protected float warning;
public void show_Sname(){
System.out.println("Personal Information : " + name);
}
}
class Student extends School{
public void show_warning(int late){
warning = late / 3;
System.out.println("You hava " + warning + " warnings");
}
}
public class Main{
public static void main(String[] args){
Student paper = new Student();
int late = 21;
paper.show_Sname();
paper.show_warning(late);
}
}
protected
,它的存取權限可以到子類別和同套件的類別,假設這邊換成預設的模式,就不能被子類別所繼承。此章內容重點放在何謂繼承與如何使用繼承,下一章節也同為繼承內容,只是會介紹更進階的private如何被繼承以及運用物件相關關鍵字解釋不同的繼承概念。
以上內容若有誤或任何問題,煩請不吝嗇告知,謝謝您!!!